@怪人
1年前 提问
1个回答

嗅探的原理是什么

007bug
1年前
官方采纳

嗅探器的英文写法是siffer, 所谓网络嗅探,其实就是对大量网络数据流进行分析,从中分离出我们感兴趣的东西并记录下来或显示出来。可以理解为个安装在计算机上的窃听设备,它可以用来窃听计算机在网络上所产生的众多的信息,可以监视网络的状态、数据流动情况及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式窃取网上传送的数据包。将网络接口设置在监听模式,可以将网上传输的信息截获。

嗅探类型的工具有以下模块组成:

  • 数据包嗅探模块:大规模的应用程序很少采用单机运行模式,Snort通常采用分布式体系对网络进行入侵检测。最典型的安装方式是3层体系,即传感器层、服务器层、分析员控制台。通常数据包采集模块和包解码器运行在传感器上,负责对抓来的包进行解释。由于传感器必须放置在被监控的网段,为了保证安全,通常只安装Snort和在它之下运行的支撑应用程序。传感器的两块网卡中的一块用作被动采集数据包,接口不分配IP地址,另一块用作管理接口,需要分配IP地址。数据包采集程序运行在Libpcap平台上,由于Libpcap平台的独立性使得Snort可以被移植到任何地方,成为一个真正与平台无关的应用程序。

  • 预处理程序模块:预处理程序是Snort的一类插件。它在Snort运行检测引擎之前对数据进行处理,并且努力与不断变化的漏洞和攻击保持同步。用户可以添加新的协议为Snort提供支持,它既能对数据包操作以便检测引擎能正确分析数据包,又能检测特征检测所不能单独发现的可疑流量。新的攻击方法和IDS躲避技术不断涌现,以至Snort的检测引擎要么不能检测,要么检测效率不高。预处理程序可以将数据标准化以便检测引擎能正确对其进行分析。此外,一些病毒制造者为了躲避反病毒程序的特征匹配引擎而引入多态病毒;同样的技术也被用于远程利用,shell代码具有多种形态。Fnord预处理程序能检测出变异的NO-OP Sled,从而避免了由于缓冲区溢出使处理器强制执行恶意代码导致的程序崩溃。NO-OP Sled能被许多IDS轻易地检测到,除非它在每次被使用时都做修改。如果没有Fnord预处理,Snort将无法检测多态Shell代码。

  • 检测引擎模块:检测引擎是Snort的主要组件。它有两个主要功能:规则分析和特征检测。检测引擎通过分析Snort规则来建立攻击特征。Snort规则被载入到检测引擎并以树形数据结构分类。规则按功能分为两个部分:规则头(规则树节点)和规则选项(选项树节点)。规则头包含特征应用的条件信息。树形结构通过最小化发现可疑行为的必要检测次数来提高效率。恶意行为被发现后,Snort将入侵数据写入不同的输出插件。最有效的检测攻击的方法是基于特征的检测。基于特征的检测的基础是异常或恶意网络流量符合一种独特的模式,而正常或良性流量不符合。对Snort来说,一个恶意流量特征可以被创建成一个规则以载入它的检测引擎,用于进行特征匹配。通过特征检测出可疑流量后,还可以进一步检测可疑的数据包内容字段。

  • 数据聚合模块:以一种工业标准格式从许多完全不同的安全设施聚合数据,从而进行事件关联。

  • 报警模块:Snort有两种主要的报警方法,即Syslog和Swatch报警、入侵数据库控制台报警。Swatch是一种简单且功能强大的工具,它能积极地监控系统日志,当发生了事先配置的事件时就发出报警。

  • 分层报警模块:入侵检测系统领域的报警分为3类,无优先级报警、严格编码的优先级报警、可定制的优先级报警。无优先级报警不能按严重程度进行分类,通告会变得非常多,无法采用紧急时间自动通知机制;严格编码的优先级报警由销售商决定哪些报警重要,程序员可以进行排序和筛选,但这种“one fits all”的方法对于报警并不适合;可定制的优先级报警是现代网络的模块化和独特性所需要的。报警能基于事先设置的优先级进行排序。Snort自带了32种预定义的警报分类。